<?php
/**
 * Created by PhpStorm.
 * User: FDG367
 * Date: 2017/9/20
 * Time: 14:30
 */
namespace common\models\soap;

use yii;

class SoapClient extends yii\BaseYii{
    public $client;

    /**
     * @param 初始化
     */
    public function __construct(){
        header('Content-Type: text/html; charset=utf-8');
        $this->clien = new \SoapClient(
            Yii::$app->params['soap_genre_url'],
            [
                'encoding'=>'utf-8',
                'cache_wsdl' => 0,
                'compression'=>true
            ]);
        $this->clien->soap_defencoding = 'utf-8';
        $this->clien->xml_encoding = 'utf-8';
    }
    /**
     * @param soap基本方法
     */
    public static  function soapClient($callBack,$params=[]){

        //没有方法返回false
        if(!method_exists(new static(),$callBack))
            return false;

        //返回对应的参数
        return (new static())->$callBack($params);
    }

    /**
     * @param 获取用户信息的方法
     * @param $params 获取信息的参数 memberNo：会员编号 mobileNo:会员手机
     * @return json
     */
    private function getMembers($params){
        return $this->clien->GetMembers($params);//parameters
    }

    /**
     * @param 选择会员号
     * @param $params mobileNo:手机号码 memberNo:会员号 combinePoint:是否合并积分
     * @return json
     */
    private function selectMemberNo($params){
        return $this->clien->SelectMemberNo($params);//parameters
    }

    /**
     * @param 会员注册
     * @param $params name:姓名 sex:性别 mobile:手机 birthday:生日 province:省 city：市 district：区 adddress：地址 email：邮箱
     * @return json
     */
    private function register($params){
        return $this->clien->Register($params);//parameters
    }

    /**
     * @param 修改会员信息
     * @param $params memberNo:会员卡号 name:姓名 sex:性别 mobile:手机 birthday:生日 province:省 city：市 district：区 adddress：地址 email：邮箱
     * @return json
     */
    private function modify($params){
        return $this->clien->Modify($params);//parameters
    }

    /**
     * @param 微信改积分
     * @param $params weixinId:微信Id; pointsType:积分操作类型  point:积分正数增加负数减少不能为0 billNo:关联单据号 大小30;memo备注信息 大小500
     * @return json
     */
    private function changePoint($params){
        return $this->clien->ChangePoint($params);//parameters
    }

    /**
     * @param 根据微信ID获取会员信息
     * @param $params weixinId:微信Id;
     * @return json result 执行结果 true:false message 执行信息
     */
    private function getMembersByWeiXinId($params){
        return $this->clien->GetMembersByWeiXinId($params);//parameters
    }

    /**
     * @param 根据微信ID获取会员信息
     * @param $params weixinId:微信Id;
     * @return json result 执行结果 true:false message 执行信息
     */
    private function unbindWeiXinId($params){
        return $this->clien->UnbindWeiXinId($params);//parameters
    }

    /**
     * @param 会员查询接口
     * @param $params memberNo:会员卡号 memberName:姓名  mobileNo:手机 regDateBegin:注册日期 regDateEnd：注册结束日期 sortExpression:表达式；pageSize：每页记录数 pageIndex：页索引
     * @return json
     */
    private function queryMembers($params){
        return $this->clien->QueryMembers($params);//parameters
    }



}